nosql

NoSQL คืออะไร

NoSQL หรือ “non SQL”, “non relational” ,”not only SQL” หมายถึงการที่ database ใช้วิธีการสร้างฐานข้อมูลและการดึงข้อมูล ที่แต่งตากจากรูปแบบปกติ (SQL) ที่ออกมาในรูปแบบตารางเช่นเดียวกับ relational databases  ซึ่งตั้งแต่ช่วง 1960 ที่ database ได้ถือกำเนิดขึ้นแต่ NoSQL ก็ยังไม่เป็นที่นิยม จนกระทั้งช่วงปี 2000 NoSQL เริ่มถูกเพิ่มเข้ามาใน Web2.0 ทำให้หลายบริษัทชั้นนำเช่น Facebook, Google และ Amazon.com ได้เริ่มนำมาใช้ ส่วนมากถูกนำมาใช้งานเกี่ยวกับ big data และ real-time web applications นั้นคือที่มาของ NoSQL คืออะไร

โดยปกติแล้ว NoSQL ง่ายต่อการขยายระบบ ที่เป็นรูปแบบ cluster (แนวนอน) ซึ่งนี้เป็นจุดด้อยหลักเลยของ relational database หลักการของ NoSQL คือใช้โครงสร้างของข้อมูลได้หลายรูปบบอาทิ key-value,wide column,graph หรือ document ซึ่งจะแตกต่างจากรูปแบบของ relational database ซึ่งบางครั้งทำให้ NoSQL มีความรวดเร็วมากกว่า

 

ประเภทของ NoSQL (ตัวอย่าง)

มีการจำแนกได้หลายรูปแบบสำหรับ NoSQL database โดยแต่ละรูปแบบได้มีการจัดกลุ่มและกลุ่มย่อยไว้ บางครั้งอาจจะมีบางชนิดคาบเกี่ยวกันบ้าง เช่น

  • Column: Accumulo, Cassandra, Druid, HBase, Vertica, SAP HANA
  • Document: Apache CouchDB, ArangoDB, Clusterpoint, Couchbase, DocumentDB, HyperDex, IBM Domino, MarkLogic, MongoDB, OrientDB, Qizx, RethinkDB
  • Key-value: Aerospike, ArangoDB, Couchbase, Dynamo, FairCom c-treeACE, FoundationDB, HyperDex, InfinityDB, MemcacheDB, MUMPS, Oracle NoSQL Database, OrientDB, Redis, Riak, Berkeley DB
  • Graph: AllegroGraph, ArangoDB, InfiniteGraph, Apache Giraph, MarkLogic, Neo4J, OrientDB, Virtuoso, Stardog
  • Multi-model: Alchemy Database, ArangoDB, CortexDB, Couchbase, FoundationDB, InfinityDB, MarkLogic, OrientDB

Key-value store

ทำงานในรูปแบบ array (Map หรือ Dict) ซึ่งเป็นโครงสร้างพื้นฐานที่สร้างความสัมพันธ์เป็นคู่ ซึ่ง Key จะต้องไม่ซ้ำกัน รูปแบบนี้คือแบบที่ง่ายที่สุด และ มีความสามารถในการประมวมผลที่สูงมาก

Document store

รูปแบบของ document store คือการ เข้ารหัสข้อมูลด้วยรูปแบบ format มาตราฐานเช่น XML,YAML,JSON หรือ binary และเก็บไว้ใน database ด้วย unique key ที่เชื่อมกับข้อมูล คล้ายรูปแบบของ key-value โดย database จะมี API หรือ ภาษาที่ใช้ query ข้อมูล
สามารถติดตั้งได้หลายรูปแบบ ตามกลุ่ม documents
  • Collections
  • Tags
  • Non-visible metadata
  • Directory hierarchies

ถ้าเทียบกับ relational database จะเห็นว่า แต่ละ record สามารถมีจำนวน field ไม่เท่ากันได้ ซึ่งไม่เหมื่อนกับรูปแบบตาราง

Graph

ถูกออกแบบสำหรับข้อมูลที่มีต้องแสดงเป็น graph ที่ประกอบไปด้วยข้อมูลตัวเลขนับไม่ถ้วน เช่น social relations, link ของการข่นส่ง, ถนนแผนที่ หรือ ระบบ network

รองรับ ACID

Aerospike, ArangoDB, CouchDB, c-treeACE, HyperDex, InfinityDB, LMDB, MarkLogic, OrientDB

 

Author: Suphakit Annoppornchai

Credit: https://saixiii.com,https://en.wikipedia.org

One Thought to “รู้จักกันไหม NoSQL คืออะไร ต่างอย่างไรกับ SQL ปกติ”

Leave a Reply